//package com.greate.community.controller;
//
//import com.greate.community.entity.DiscussPost;
//import com.greate.community.entity.Page;
//import com.greate.community.service.LikeService;
//import com.greate.community.service.UserService;
//import com.greate.community.util.CommunityConstant;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Controller;
//import org.springframework.ui.Model;
//import org.springframework.web.bind.annotation.GetMapping;
//
//import java.util.*;
//
///**
// * 搜索
// */
//@Controller
//public class SearchController implements CommunityConstant {
//
//    @Autowired
//    private ElasticsearchService elasticsearchService;
//
//    @Autowired
//    private UserService userService;
//
//    @Autowired
//    private LikeService likeService;
//
//    /**
//     * 搜索
//     * search?keword=xxx
//     * @param keyword 关键词
//     * @param page
//     * @param model
//     * @return
//     */
//    @GetMapping("/search")
//    public String search(String keyword, Page page, Model model) {
//        // 搜索帖子 (Spring 提供的 Page 当前页码从 0 开始计数)
//        org.springframework.data.domain.Page<DiscussPost> searchResult =
//            elasticsearchService.searchDiscussPost(keyword, page.getCurrent()-1, page.getLimit());
//        // 聚合数据
//        List<Map<String, Object>> discussPosts = new ArrayList<>();
//        if (searchResult != null) {
//            for (DiscussPost post : searchResult) {
//                Map<String, Object> map = new HashMap<>();
//                // 帖子
//                map.put("post", post);
//                // 作者
//                map.put("user", userService.findUserById(post.getUserId()));
//                // 点赞数量
//                map.put("likeCount", likeService.findEntityLikeCount(ENTITY_TYPE_POST, post.getId()));
//
//                discussPosts.add(map);
//            }
//        }
//
//        model.addAttribute("discussPosts", discussPosts);
//        model.addAttribute("keyword", keyword);
//
//        // 设置分页
//        page.setPath("/search?keyword="+ keyword);
//        page.setRows(searchResult == null ? 0 : (int) searchResult.getTotalElements());
//
//        return "/site/search";
//    }
//
//
//}
